//package com.woniuxy.his.common;
//
//
//import com.fasterxml.jackson.databind.JavaType;
//import com.fasterxml.jackson.databind.type.TypeFactory;
//import com.fasterxml.jackson.databind.util.Converter;
//import org.springframework.stereotype.Component;
//import org.springframework.util.StringUtils;
//
//import java.text.SimpleDateFormat;
//import java.util.Date;
//
//@Component
//public class DateConverter implements Converter<String, Date> {
//
//    private static final String dateFormat = "yyyy-MM-dd HH:mm:ss";
//    private static final String shortDateFormat = "yyyy-MM-dd";
//    private static final String timeStampFormat = "^\\d+$";
//
//    private static final String hDateFormat = "yyyy年MM月dd日 HH:mm:ss";
//    private static final String hshortDateFormat = "yyyy年MM月dd日";
//
//    @Override
//    public Date convert(String value) {
//
//        if (StringUtils.isEmpty(value)) {
//            return null;
//        }
//
//        value = value.trim();
//
//        try {
//            if (value.contains("-")) {
//                SimpleDateFormat formatter;
//                if (value.contains(":")) {
//                    formatter = new SimpleDateFormat(dateFormat);
//                } else {
//                    formatter = new SimpleDateFormat(shortDateFormat);
//                }
//                return formatter.parse(value);
//            } else if (value.matches(timeStampFormat)) {
//                Long lDate = new Long(value);
//                return new Date(lDate);
//            } else if (value.contains("年")) {
//
//                SimpleDateFormat formatter;
//                if (value.contains(":")) {
//                    formatter = new SimpleDateFormat(hDateFormat);
//                } else {
//                    formatter = new SimpleDateFormat(hshortDateFormat);
//                }
//
//                return formatter.parse(value);
//            }
//        } catch (Exception e) {
//            throw new RuntimeException(String.format("parser %s to Date fail", value));
//        }
//        throw new RuntimeException(String.format("parser %s to Date fail", value));
//    }
//
//    @Override
//    public JavaType getInputType(TypeFactory typeFactory) {
//        return null;
//    }
//
//    @Override
//    public JavaType getOutputType(TypeFactory typeFactory) {
//        return null;
//    }
//}
